/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author 
 */
public class Usuario implements Serializable{
    private String id_usuario;
    private String clave;
    private String nivel;

    public String getClave() {
        return clave;
    }

    public void setClave(String clave) {
        this.clave = clave;
    }

    public String getId_usuario() {
        return id_usuario;
    }

    public void setId_usuario(String id_usuario) {
        this.id_usuario = id_usuario;
    }

    public String getNivel() {
        return nivel;
    }

    public void setNivel(String nivel) {
        this.nivel = nivel;
    }
     public static boolean agregarUsuario(Usuario obj_a){
       boolean a=false;
      Connection conexion = null;
      try {
          conexion= ControladorBD.darConexionBD();
          CallableStatement st;
          st=conexion.prepareCall("{call  sp_Registrar_Usuario(?,?,?)}");
          conexion.setAutoCommit(false);
          
          if(obj_a.getClave() != null){
              if(obj_a.getClave().length()>0){
                st.setString(1,obj_a.getClave());
              }
              else{
                st.setString(1,null);
              } 
          }
          else{
              st.setString(1,null);
          }
           if(obj_a.getNivel() != null){
              if(obj_a.getNivel().length()>0){
                st.setString(2,obj_a.getNivel());
              }
              else{
                st.setString(2,null);
              } 
          }
          else{
              st.setString(2,null);
          }
               
          st.registerOutParameter(3, java.sql.Types.VARCHAR); //intentar extraer el parametro de salida y darselo al codigo
          st.execute();
          if(st.getString(3)!=null){
              a=true;
          }
          st.close();
          conexion.setAutoCommit(true);
          conexion.close();
     }catch(Exception error){
          System.out.println("Error en agregarUsuario:"+error.getMessage());
          error.printStackTrace();
    }
      return a;
    
     }
       public static ArrayList<Usuario>getCargarUsuario(){
        ArrayList<Usuario> arreglo=null;
        Usuario obj = null;
        Connection conexion = null;
        ResultSet rs= null;

        try{
            conexion = ControladorBD.darConexionBD();
            CallableStatement st = conexion.prepareCall("{call sp_Listar_Usuario()}");
            rs=st.executeQuery();
            //st(1,estado);
            if(rs.next()){
                arreglo=new ArrayList<Usuario>();
                do{
                    obj=new Usuario();
                    obj.setClave(rs.getString("clave"));
                    obj.setNivel(rs.getString("nivel"));
                    arreglo.add(obj);
                }while(rs.next());
            }
        }catch(Exception error) {
            System.out.println("Error en Listado: " + error.getMessage());
            error.getMessage();
        }
        return arreglo;
    
    }

 
}
    